<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.23">
<meta name="description" content="NetX Duo is an advanced, industrial-grade TCP/IP network stack is designed specifically for deeply embedded real-time and IoT applications.">
<title>Overview of NetX Duo</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.square{list-style-type:square}
ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child{border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:first-child,.sidebarblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child,.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
pre.pygments span.linenos{display:inline-block;margin-right:.75em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
li>p:empty:only-child::before{content:"";display:inline-block}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active,#footnotes .footnote a:first-of-type:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
</head>
<body class="article">
<div id="header">
<h1>Overview of NetX Duo</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo embedded TCP/IP network stack is Eclipse Foundation&#8217;s advanced, industrial grade dual IPv4 and IPv6 TCP/IP network stack that is designed specifically for deeply embedded, real-time, and IoT applications. NetX Duo provides embedded applications with core network protocols such as IPv4, IPv6, TCP, and UDP as well as a complete suite of additional, higher-level add-on protocols. NetX Duo offers security via additional add-on security products, including NetX Duo Secure IPsec and NetX Duo Secure SSL/TLS/DTLS. All of this combined with a small footprint, fast execution, and superior ease-of-use make NetX Duo the ideal choice for the most demanding embedded IoT applications.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_api_protocols">API protocols</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_mqtt">MQTT</h3>
<div class="ulist">
<ul>
<li>
<p>Messaging Queue Telemetry Transport (MQTT)</p>
</li>
<li>
<p>Minimal 2.7 KB FLASH</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_auto_ip">Auto IP</h3>
<div class="ulist">
<ul>
<li>
<p>Automatic IPv4 address assignment</p>
</li>
<li>
<p>Minimal 1.2 KB, 300 bytes of RAM</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_http_https">HTTP, HTTPS</h3>
<div class="paragraph">
<p>NetX Duo supports the following HTTP/HTTPS protocols.</p>
</div>
<div class="sect3">
<h4 id="_http_1_0">HTTP 1.0</h4>
<div class="ulist">
<ul>
<li>
<p>Hypertext Transfer Protocol(HTTP)</p>
</li>
<li>
<p>Minimal 2.8 KB to 4.8 KB FLASH / 0.4 KB to 1.0 KB RAM</p>
</li>
<li>
<p>Client and server support</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="_httphttps_1_1">HTTP/HTTPS 1.1</h4>
<div class="ulist">
<ul>
<li>
<p>Hypertext Transfer Protocol(HTTP)</p>
</li>
<li>
<p>Minimal 3.0 KB to 9.5 KB FLASH / 0.5 KB to 2 KB RAM</p>
</li>
<li>
<p>Client and server support</p>
</li>
<li>
<p>Multiple incoming client sessions</p>
</li>
<li>
<p>Plain text and encrypted HTTPS</p>
</li>
<li>
<p>Persistent connection support</p>
</li>
<li>
<p>Multipart file upload</p>
</li>
<li>
<p>Fully integrated with NetX Duo Secure TLS</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_smtp">SMTP</h3>
<div class="ulist">
<ul>
<li>
<p>Simple Mall Transfer Protocol (SMTP)</p>
</li>
<li>
<p>Minimal 4.1 KB and 0.6 KB RAM footprint</p>
</li>
<li>
<p>Client support</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_dhcp">DHCP</h3>
<div class="ulist">
<ul>
<li>
<p>Dynamic Host Configuration Protocol (DHCP)</p>
</li>
<li>
<p>Minimal 3.6 KB to 4.6 KB FLASH, 2.7 KB RAM footprint</p>
</li>
<li>
<p>Client and server support</p>
</li>
<li>
<p>IPv4 and IPv6 support</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_nat">NAT</h3>
<div class="ulist">
<ul>
<li>
<p>Network Address Translation (NAT)</p>
</li>
<li>
<p>Minimal 3.5K6 and 0.6 KB RAM footprint</p>
</li>
<li>
<p>IPv4 address support</p>
</li>
<li>
<p>NAT is only available with NetX Duo</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_snmp">SNMP</h3>
<div class="ulist">
<ul>
<li>
<p>Simple Network Management Protocol (SNMP)</p>
</li>
<li>
<p>Minimal 10.9 KB and 2.6 KB RAM footprint</p>
</li>
<li>
<p>Agent support for VI, V2, and V3</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_dns_mdns_dns_sd">DNS, mDNS, DNS-SD</h3>
<div class="ulist">
<ul>
<li>
<p>Domain Name System (DNS)</p>
</li>
<li>
<p>Multicast Domain Name System (mDNS)</p>
</li>
<li>
<p>DNS-based service discovery (DNS-SD)</p>
</li>
<li>
<p>DNS Minimal 2.4 KB to 3 KB FLASH, 1 KB RAM footprint</p>
</li>
<li>
<p>Client support</p>
</li>
<li>
<p>mDNS and DNS-SD are only available with NetX Duo</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_pop3">POP3</h3>
<div class="ulist">
<ul>
<li>
<p>Post Office Protocol Version 3 (POP3)</p>
</li>
<li>
<p>Minimal 8.1 KB and 1.4 KB RAM footprint</p>
</li>
<li>
<p>Client support</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_telnet">TELNET</h3>
<div class="ulist">
<ul>
<li>
<p>Minimal 0.5 KB and 0.3 KB RAM footprint</p>
</li>
<li>
<p>Client and server support</p>
</li>
<li>
<p>Intuitive Telnet APIs: <strong>nx<em>telnet</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_ftp_tftp">FTP, TFTP</h3>
<div class="ulist">
<ul>
<li>
<p>File Transfer Protocol (FTP)</p>
</li>
<li>
<p>Trivial File Transfer Protocol (TFTP)</p>
</li>
<li>
<p>FTP Minimal 1.8 KB to 7.2 KB FLASH, 0.6 KB to 2.1 KB RAM footprint</p>
</li>
<li>
<p>TFTP Minimal 1.7 KB to 2.4 KB FLASH, 0.3 KB to 1.8 KB RAM footprint</p>
</li>
<li>
<p>Client and server support</p>
</li>
<li>
<p>Intuitive FTP and TFTP APIs: <strong>nx<em>ftp</em><strong> or <em>nx</em>tftp</strong></strong></p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_ppp_pppoe">PPP, PPPoE</h3>
<div class="ulist">
<ul>
<li>
<p>Point-to-PoInt Protocol (PPP)</p>
</li>
<li>
<p>Point-to-Point Protocol over Ethernet (PPPoE)</p>
</li>
<li>
<p>Minimal 7.1 KB and 3.8 KB RAM footprint</p>
</li>
<li>
<p>Intuitive PPP APIs: <strong>nx<em>ppp</em></strong>*</p>
</li>
<li>
<p>PPPoE is only available with NetX Duo</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_sntp">SNTP</h3>
<div class="ulist">
<ul>
<li>
<p>Simple Network Time Protocol (SNTP)</p>
</li>
<li>
<p>Minimal 4 KB and 0.5 KB RAM</p>
</li>
<li>
<p>Client support</p>
</li>
<li>
<p>Intuitive SNTP APIs: <strong>nx<em>sntp</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_legacy_code_support">Legacy code support</h3>
<div class="ulist">
<ul>
<li>
<p>Optional BSD layer for porting legacy socket code</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_igmp">IGMP</h3>
<div class="ulist">
<ul>
<li>
<p>Internet Group Management Protocol (IGMP)</p>
</li>
<li>
<p>Minimal 2.5 KB FLASH</p>
</li>
<li>
<p>IPv4 multicast group support</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Optional IGMP statistics</p>
</li>
<li>
<p>System-level trace via ThreadX</p>
</li>
<li>
<p>Intuitive IGMP APIs: <strong>nx<em>igmp</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_netx_duo_secure_dtls">NetX Duo Secure DTLS</h3>
<div class="ulist">
<ul>
<li>
<p>Datagram Transport Layer Security (DTLS) 1.0 and 1.2</p>
</li>
<li>
<p>Minimal 11 KB FLASH</p>
</li>
<li>
<p>Fast, software RSA 2048-bit key size ~1-second @120MHz</p>
</li>
<li>
<p>Streamlined X.509 Implementation</p>
</li>
<li>
<p>Fully integrated with NetX Duo UDP sockets</p>
</li>
<li>
<p>Hardware Crypto Support</p>
</li>
<li>
<p>Software Crypto Support: RSA (all key sizes), AES, DES/3DES, ECC, HMAC, MD5, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)</p>
</li>
<li>
<p>Elliptic Curve Cryptography (ECC) with ECDSA (signing) and ECDH (encryption), including P-curves 192/224/256/384/521</p>
</li>
<li>
<p>Encrypted Key Support (hardware dependent)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_netx_duo_secure_tls">NetX Duo Secure TLS</h3>
<div class="ulist">
<ul>
<li>
<p>Transport Layer Security (TLS) 1.0, 1.1, and 1.2</p>
</li>
<li>
<p>Minimal 8.8 KB FLASH</p>
</li>
<li>
<p>Fast, software RSA 2048-bit key size ~1-second @120MHz</p>
</li>
<li>
<p>Streamlined X.509 Implementation</p>
</li>
<li>
<p>Fully integrated with NetX Duo TCP sockets</p>
</li>
<li>
<p>Hardware Crypto Support</p>
</li>
<li>
<p>Software Crypto Support: RSA (all key sizes), AES, DES/3DES, ECC, HMAC, MD5, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)</p>
</li>
<li>
<p>Elliptic Curve Cryptography (ECC) with ECDSA (signing) and ECDH (encryption), including P-curves 192/224/256/384/521</p>
</li>
<li>
<p>Encrypted Key Support (hardware dependent)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_icmp">ICMP</h3>
<div class="ulist">
<ul>
<li>
<p>Internet Control Message Protocol (ICMP)</p>
</li>
<li>
<p>Minimal 2.5 KB FLASH</p>
</li>
<li>
<p>IPv4 and IPv6 support</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Ping request and ping response</p>
</li>
<li>
<p>Optional thread suspension on ping requests</p>
</li>
<li>
<p>Optional timeout on all suspension</p>
</li>
<li>
<p>Optional ICMP statistics</p>
</li>
<li>
<p>System-level trace via TraceX</p>
</li>
<li>
<p>Intuitive ICMP APIs: <strong>nx<em>icmp</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_udp">UDP</h3>
<div class="ulist">
<ul>
<li>
<p>User Datagram Protocol (UDP)</p>
</li>
<li>
<p>Minimal 2.5 KB FLASH, 124 sockets bytes of RAM per socket</p>
</li>
<li>
<p>Fast, near wirespeed UDP packet processing:</p>
<div class="ulist">
<ul>
<li>
<p>RX 95 Mbps on 100 Mbps Ethernet, MCU @100MHz, 14% MCU utilization</p>
</li>
<li>
<p>TX 94 Mbps on 100 Mbps Ethernet, MCU @100MHz, 10% MCU utilization</p>
</li>
</ul>
</div>
</li>
<li>
<p>UDP Fast Path™ technology</p>
</li>
<li>
<p>No limits on the number of UDP</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Optional suspension on socket receive</p>
</li>
<li>
<p>Optional timeout on all suspension</p>
</li>
<li>
<p>Optional UDP statistics</p>
</li>
<li>
<p>System-level trace via TraceX</p>
</li>
<li>
<p>Intuitive UDP APIs: <strong>nx<em>udp</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_tcp">TCP</h3>
<div class="ulist">
<ul>
<li>
<p>Transmission Control Protocol (TCP)</p>
</li>
<li>
<p>Minimal 10.5K8 to 12.5 KB FLASH, 280 bytes of RAM per socket</p>
</li>
<li>
<p>Fast, near wlrespeed TCP packet processing:</p>
<div class="ulist">
<ul>
<li>
<p>RX 93 Mbps on 100 Mbps Ethernet, MCU @100MHz, 20% MCU utilization</p>
</li>
<li>
<p>TX 94 Mbps on 100 Mbps Ethernet, MCU @100MHz, 27% MCU utilization</p>
</li>
</ul>
</div>
</li>
<li>
<p>Reliable connection</p>
</li>
<li>
<p>No limits on the number of TCP sockets</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Optional suspension on socket receive/transmit</p>
</li>
<li>
<p>Optional timeout on all suspension</p>
</li>
<li>
<p>Optional TCP statistics</p>
</li>
<li>
<p>System-level trace via TraceX</p>
</li>
<li>
<p>Intuitive TCP APIs: <strong>nx<em>tcp</em></strong>*</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_arprarp">ARP/RARP</h3>
<div class="ulist">
<ul>
<li>
<p>Address Resolution Protocol (ARP)</p>
</li>
<li>
<p>Reverse Address Resolution Protocol (RARP)</p>
</li>
<li>
<p>Minimal 1.7 KB FLASH, RAM size</p>
</li>
<li>
<p>Dynamic resolution of 32-blt IPv4 and 48-blt MAC addresses</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Flexible, user-defined ARP cache</p>
</li>
<li>
<p>Gratuitous ARP support</p>
</li>
<li>
<p>Optional ARP/RARP statistics determined by application</p>
</li>
<li>
<p>System-level trace via TraceX</p>
</li>
<li>
<p>Intuitive ARP/RARP APIs: <strong>nx<em>arp</em>*<em>, *nx</em>rarp</strong>**</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_ipv4_ipv6">IPv4 &amp; IPv6</h3>
<div class="ulist">
<ul>
<li>
<p>Internet Protocol (IP)</p>
</li>
<li>
<p>Minimal 3.5 KB to 8.5 KB FLASH, 2 KB to 3 KB RAM footprint</p>
</li>
<li>
<p>Piconet architecture</p>
</li>
<li>
<p>Fast, near wirespeed performance</p>
</li>
<li>
<p>Multiple interface support</p>
</li>
<li>
<p>Multihomed support</p>
</li>
<li>
<p>Static routing support</p>
</li>
<li>
<p>IP fragmentation/reassembly support</p>
</li>
<li>
<p>IPv4 and IPv6 address support</p>
</li>
<li>
<p>IXIA IxANVL validated</p>
</li>
<li>
<p>Phase II IPv6 Ready Logo Certification</p>
</li>
<li>
<p>Optional IP statistics</p>
</li>
<li>
<p>Well defined, intuitive physical layer driver interface</p>
</li>
<li>
<p>System-level trace via TraceX</p>
</li>
<li>
<p>Intuitive IP layer APIs: <strong>nx<em>ip</em>*<em>, *nxd</em>ip<em>*</em>, <em>nxd</em>ipv6</strong>**</p>
</li>
<li>
<p>Pre-certified by TUV and UL to IEC 61508 SIL 4</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_netx_duo_secure_ipsec">NetX Duo Secure IPSEC</h3>
<div class="ulist">
<ul>
<li>
<p>Internet Protocol Security (IPSEC)</p>
</li>
<li>
<p>IP layer</p>
</li>
<li>
<p>Hardware crypto support</p>
</li>
<li>
<p>Software crypto support, including:</p>
<div class="ulist">
<ul>
<li>
<p>DES, 3DES</p>
</li>
<li>
<p>AES</p>
</li>
<li>
<p>HMAC-MD5</p>
</li>
<li>
<p>HMAC-SHA1</p>
</li>
</ul>
</div>
</li>
<li>
<p>Internet Key Exchange (IKE) Version 2 support</p>
</li>
<li>
<p>Intuitive IPsec APIs: <strong>nx<em>ipsec</em></strong>*</p>
</li>
<li>
<p>IPsec is only available with NetX Duo</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_safe_and_secure">Safe and secure</h2>
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo is secure. This security is provided through add-on security products, including IPsec, SSL, TLS, and DTLS. Also, the application has complete control over all external access to NetX Duo, making security risk determination much easier.</p>
</div>
<div class="paragraph">
<p>Eclipse ThreadX provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_interoperability_verification">Interoperability verification</h2>
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo conforms to RFC standards and offers complete interoperability with devices for most vendors.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./media/overview-netx-duo/ipv6-ready-logo.png" alt="IPv6 Ready Logo">
</div>
</div>
<div class="paragraph">
<p>NetX Duo is one of the only embedded TCP/IP stacks to achieve the rigorous IPv6-Ready Logo certification, evidence that it has passed conformance and interoperability tests, administered and validated by the IPv6 Forum. NetX Duo also utilizes the industry standard IxANVL (Automated Network Validation Library) for the NetX Duo core TCP/IP protocol implementation.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_comprehensive_iot_solution">Comprehensive IoT solution</h2>
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo has one of the most comprehensive TCP/IP networking for deeply embedded IoT applications. This support includes the following add-on protocol products.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>MQTT</p>
</li>
<li>
<p>SSL/TLS/DTLS</p>
</li>
<li>
<p>AutoIP</p>
</li>
<li>
<p>DHCP</p>
</li>
<li>
<p>DNS</p>
</li>
<li>
<p>mDNS</p>
</li>
<li>
<p>DNS-SD</p>
</li>
<li>
<p>FTP</p>
</li>
<li>
<p>HTTP</p>
</li>
<li>
<p>NAT</p>
</li>
<li>
<p>POP3</p>
</li>
<li>
<p>PPP</p>
</li>
<li>
<p>PPPoE</p>
</li>
<li>
<p>PTP</p>
</li>
<li>
<p>RTP</p>
</li>
<li>
<p>RTSP</p>
</li>
<li>
<p>SMTP</p>
</li>
<li>
<p>SNMP v1/2/3</p>
</li>
<li>
<p>SNTP</p>
</li>
<li>
<p>Telnet</p>
</li>
<li>
<p>TFTP</p>
</li>
<li>
<p>Web HTTP</p>
</li>
<li>
<p>WebSocket</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_advanced_technology">Advanced technology</h2>
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo is advanced technology that includes the following.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Piconet architecture</p>
</li>
<li>
<p>Automatic scaling</p>
</li>
<li>
<p>UDP Fast-Path Technology™</p>
</li>
<li>
<p>Flexible packet management</p>
</li>
<li>
<p>Zero-copy API and implementation</p>
</li>
<li>
<p>Multihomed support</p>
</li>
<li>
<p>Optional timeout on all suspension</p>
</li>
<li>
<p>Static routing support</p>
</li>
<li>
<p>IPsec</p>
</li>
<li>
<p>SSL/TLS/DTLS</p>
</li>
<li>
<p>TraceX system analysis support</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_related_services">Related services</h2>
<div class="sectionbody">
<div class="paragraph">
<p>NetX Duo provides the following additional services.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Azure IoT Middleware</p>
</li>
<li>
<p>Microsoft Defender for IoT</p>
</li>
<li>
<p>Device update for IoT Hub</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_azure_iot_middleware">Azure IoT Middleware</h3>
<div class="paragraph">
<p>NetX Duo includes <a href="https://github.com/eclipse-threadx/netxduo/blob/master/addons/azure_iot/README.md">Azure IoT Middleware for Eclipse ThreadX</a>, a platform-specific library that acts as a binding layer between Eclipse ThreadX and the Azure SDK for Embedded C to facilitate connectivity to Azure IoT services. The goals of Azure IoT Middleware are the following.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Provide the smart client interfaces (IoTHub_Client, DeviceProvisioning_Client) that developers need for their applications.</p>
</li>
<li>
<p>Orchestrate the interaction between the Embedded C SDK and the platform.</p>
</li>
<li>
<p>Provide Eclipse ThreadX platform initialization.</p>
</li>
<li>
<p>IoT Plug and Play support.</p>
</li>
<li>
<p>Security capabilities.</p>
</li>
<li>
<p>Resource limitation aware.</p>
</li>
<li>
<p>Protocol support.</p>
</li>
</ul>
</div>
<div class="imageblock">
<div class="content">
<img src="./media/overview-netx-duo/related-services.png" alt="NetX Duo Related Services">
</div>
</div>
</div>
<div class="sect2">
<h3 id="_microsoft_defender_for_iot">Microsoft Defender for IoT</h3>
<div class="paragraph">
<p>The Microsoft Defender for IoT security module provides a comprehensive security solution for Eclipse ThreadX devices. The Security Module for Eclipse ThreadX offers malicious network activity detection, custom alert based device behavior baselining, and helps improve device security hygiene. Learn more about the <a href="https://learn.microsoft.com/azure/defender-for-iot/device-builders/iot-security-azure-rtos">Security Module for Eclipse ThreadX</a> or get started with <a href="https://learn.microsoft.com/azure/defender-for-iot/device-builders/how-to-azure-rtos-security-module">Configure Security Module for Eclipse ThreadX</a> quickstart.</p>
</div>
</div>
<div class="sect2">
<h3 id="_device_update_for_iot_hub">Device Update for IoT Hub</h3>
<div class="paragraph">
<p><a href="https://learn.microsoft.com/azure/iot-hub-device-update/understand-device-update">Azure Device Update for IoT Hub</a> is a service that enables you to deploy over-the-air updates (OTA) for your IoT devices. The Device Update for IoT Hub module is the implementation of Device Update for IoT Hub Agent in NetX Duo. It provides simple APIs for device builders to integrate the Device Update capability in their application.</p>
</div>
<div class="paragraph">
<p>See the samples of key semiconductors evaluation boards that include the get started guides to learn configure, build and deploy the over-the-air (OTA) updates to the devices.</p>
</div>
<div class="paragraph">
<p>To learn more details about use, see <a href="https://learn.microsoft.com/azure/iot-hub-device-update/device-update-azure-real-time-operating-system">Device Update for IoT Hub with Eclipse ThreadX</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_next_steps">Next steps</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To learn more about NetX Duo, start with the <a href="about-this-guide.html">NetX Duo User Guide</a>.</p>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-02-07 08:25:21 UTC
</div>
</div>
</body>
</html>